package top.kangyaocoding.ecommerce.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import top.kangyaocoding.ecommerce.IUserBehaviorService;
import top.kangyaocoding.ecommerce.dao.*;
import top.kangyaocoding.ecommerce.po.*;

import java.util.List;

/**
 * 描述: 用户行为分析服务实现
 *
 * @author K·Herbert
 * @since 2025-02-16 下午4:28
 */
@Service
public class UserBehaviorService implements IUserBehaviorService {

    @Autowired
    private IArppuDailyDao arppuDailyDao;
    @Autowired
    private IArpuDailyDao arpuDailyDao;
    @Autowired
    private IBehaviorTypeWithHourDao behaviorTypeWithHourDao;
    @Autowired
    private IBehaviorTypeWithHour1212Dao behaviorTypeWithHour1212Dao;
    @Autowired
    private IConversionPercentageDao conversionPercentageDao;
    @Autowired
    private IConversionPercentage1212Dao conversionPercentage1212Dao;
    @Autowired
    private IDataSummaryDao dataSummaryDao;
    @Autowired
    private IOrderRateDailyDao orderRateDailyDao;
    @Autowired
    private IPvDailyDao pvDailyDao;
    @Autowired
    private IPvHourlyDao pvHourlyDao;
    @Autowired
    private IPvHourly1212Dao pvHourly1212Dao;
    @Autowired
    private IRepeatBuyCycleDao repeatBuyCycleDao;
    @Autowired
    private IRepeatBuyRatioDao repeatBuyRatioDao;
    @Autowired
    private IUserBehaviorDistributionDao userBehaviorDistributionDao;
    @Autowired
    private IUserBuyCountDao userBuyCountDao;
    @Autowired
    private IUserClusterFeaturesDao userClusterFeaturesDao;
    @Autowired
    private IUvDailyDao uvDailyDao;
    @Autowired
    private IUvHourlyDao uvHourlyDao;
    @Autowired
    private IUvHourly1212Dao uvHourly1212Dao;
    @Autowired
    private IPathConversionRateDao pathConversionRateDao;
    @Autowired
    private IPathConversionRate1212Dao pathConversionRate1212Dao;

    @Override
    public List<ArppuDaily> getAllArppuDaily() {
        return arppuDailyDao.findAll();
    }

    @Override
    public List<ArpuDaily> getAllArpuDaily() {
        return arpuDailyDao.findAll();
    }

    @Override
    public List<BehaviorTypeWithHour> getAllBehaviorTypeWithHour() {
        return behaviorTypeWithHourDao.findAll();
    }

    @Override
    public List<BehaviorTypeWithHour1212> getAllBehaviorTypeWithHour1212() {
        return behaviorTypeWithHour1212Dao.findAll();
    }

    @Override
    public List<ConversionPercentage> getAllConversionPercentage() {
        return conversionPercentageDao.findAll();
    }

    @Override
    public List<ConversionPercentage1212> getAllConversionPercentage1212() {
        return conversionPercentage1212Dao.findAll();
    }

    @Override
    public List<DataSummary> getAllDataSummary() {
        return dataSummaryDao.findAll();
    }

    @Override
    public List<OrderRateDaily> getAllOrderRateDaily() {
        return orderRateDailyDao.findAll();
    }

    @Override
    public List<PvDaily> getAllPvDaily() {
        return pvDailyDao.findAll();
    }

    @Override
    public List<PvHourly> getAllPvHourly() {
        return pvHourlyDao.findAll();
    }

    @Override
    public List<PvHourly1212> getAllPvHourly1212() {
        return pvHourly1212Dao.findAll();
    }

    @Override
    public List<RepeatBuyCycle> getAllRepeatBuyCycle() {
        return repeatBuyCycleDao.findAll();
    }

    @Override
    public List<RepeatBuyRatio> getAllRepeatBuyRatio() {
        return repeatBuyRatioDao.findAll();
    }

    @Override
    public List<UserBehaviorDistribution> getAllUserBehaviorDistribution() {
        return userBehaviorDistributionDao.findAll();
    }

    @Override
    public List<UserBuyCount> getAllUserBuyCount() {
        return userBuyCountDao.findAll();
    }

    @Override
    public List<UserBuyCount> getTop50UserBuyCount() {
        return userBuyCountDao.findTop50();
    }

    @Override
    public List<UserClusterFeatures> getAllUserClusterFeatures() {
        return userClusterFeaturesDao.findAll();
    }

    @Override
    public List<UvDaily> getAllUvDaily() {
        return uvDailyDao.findAll();
    }

    @Override
    public List<UvHourly> getAllUvHourly() {
        return uvHourlyDao.findAll();
    }

    @Override
    public List<UvHourly1212> getAllUvHourly1212() {
        return uvHourly1212Dao.findAll();
    }

    @Override
    public List<PathConversionRate> getAllPathConversionRate() {
        return pathConversionRateDao.findAll();
    }

    @Override
    public List<PathConversionRate1212> getAllPathConversionRate1212() {
        return pathConversionRate1212Dao.findAll();
    }
}
